// 引入静态路由和动态路由
import { asyncRoutes, constantRoutes } from '@/router'

const state = {
  // 创建一个模块变量
  routes: []
}

const mutations = {
  // 创建一个模块方法
  setRoutes(state, data) {
    // 修改原来路由的合并，把过滤后的动态路由替换原来的全部动态路由（权限过滤）
    state.routes = [...constantRoutes, ...data]
  }
}

const actions = {
  filterRoutes(store, menus) {
    console.log('过滤路由')
    // 1. 全部路由(可以引入)
    console.log(asyncRoutes)
    // 2. 当前员工的所有数据(在别的模块,可以考虑, 调用时传入)
    console.log(menus)
    // 最后过滤出有权限的路由
    const routes = asyncRoutes.filter(route => menus.includes(route.name))
    // console.log('过滤后结果')
    // console.log(routes)

    // 修改state中的routes
    store.commit('setRoutes', routes)
    // 返回新的静态+动态路由
    return routes
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}
